// 一. 导入express包
const express = require("express")
//导入数据库配置文件
const { debug } = require("../config")
const { getAll, getById, exec } = require("../db")
// 二. 创建router路由对象
const router = express.Router()
// 三. 编写路由规则

/**
 * 获取所有用户
 * GET /gguser
 */

router.get("/", async (req, res) => {
  // 操作数据库
  // 1. 编写sql语句

  /* 获取全部用户 */
  let sql = `select * from gg_user`
  const dataA = await getAll(sql)

  /* 判断用户是否删除 */
  sql = `select * from gg_user where user_other=1`
  const dataB = await getAll(sql)
  res.send({
    code: 0,
    message: "获取所有用户成功",
    result: { dataA, dataB },
  })
})

/**
 * 获取单个用户 根据用户名获取单个用户
 * GET /gg_user/:user_name
 */
router.get("/:user_name", async (req, res) => {
  const { user_name } = req.params
  let sql = `select * from gg_user where user_name='${user_name}'`
  const data = await getById(sql)
  if (data != null) {
    res.send({
      code: 0,
      message: "获取用户成功",
      result: data,
    })
  } else {
    res.send({
      code: 100101,
      message: "该用户不存在",
      result: debug ? err : "",
    })
  }
})
/**
 * 新增
 * POST /gg_user
 */
router.post("/", async (req, res) => {
  // 一. 解析请求参数
  const { user_name, user_password } = req.body
  // 二. 操作数据库
  let sql = `insert into gg_user (user_name,user_password) values ("${user_name}","${user_password}")`
  const data = await exec(sql)
  // 三. 返回结果
  res.send({
    code: 0,
    message: "新增用户成功",
    result: {
      id: data.insertId,
      user_name,
      user_password,
    },
  })
})

/**
 * 修改用户
 * PUT /gg_user/:id
 */
router.put("/:id", async (req, res) => {
  // 一. 解析请求参数
  const { user_name, user_password, user_type, user_onlinestatus, user_other } =
    req.body
  const { id } = req.params
  // 二. 操作数据库
  let sql = `update gg_user set user_name='${user_name}',user_password='${user_password}',user_type='${user_type}',user_onlinestatus='${user_onlinestatus}',user_other='${user_other}' where user_id='${id}'`
  await exec(sql)
  // 三. 返回结果
  res.send({
    code: 0,
    message: "修改用户成功",
    result: {
      id,
      user_name,
      user_password,
      user_type,
      user_onlinestatus,
      user_other,
    },
  })
})

/**
 * 删除用户
 * DELETE /gg_user/:id
 */
router.delete("/:id", async (req, res) => {
  // 一. 解析请求参数
  const { id } = req.params
  // 二. 操作数据库
  let sql = `delete from gg_user where user_id=${id}`
  await exec(sql)
  // 三. 返回结果
  res.send({
    code: 0,
    message: "删除用户成功",
    result: "",
  })
})

// 四. 导出路由对象
module.exports = router
